from rest_framework import serializers
from apps.goods.models import SpecificationOption
from apps.goods.models import SPUSpecification, SPU


class SpeceModelSerializer(serializers.ModelSerializer):
    #spu 返回给前端是id的形式  需要字符串的形式  因此这里需要额外定义一下
    spu = serializers.StringRelatedField(read_only=True)
    #前端想要id  的形式  因此将内部隐藏的spu_id 额外的设置一下
    spu_id = serializers.IntegerField()
    class Meta:
        model = SPUSpecification
        fields = '__all__'
#在商品管理的规格管理的新增规格里面的下拉菜单
# 本质上是get的得到的多条数据的集合 然后通过get得到的多条菜单选中进行post请求数据进行提交
class SpuSimpleSerializer(serializers.ModelSerializer):
    class Meta:
        model = SPU
        fields = ['id','name']

class OptionsSerializers(serializers.ModelSerializer):
    class Meta:
        model = SpecificationOption
        fields = ['id','value']

#sku表中的规格信息序列化器
class SpecOptionSerializer(serializers.ModelSerializer):
    #SPU商品的信息
    spu = serializers.StringRelatedField(read_only=True)
    spu_id = serializers.IntegerField()
    #SPU表到SPU规格表的外键连接
    options = OptionsSerializers(read_only=True,many=True)
    class Meta:
        model = SPUSpecification
        fields = '__all__'
